import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

@Entity('spatial_features')
export class SpatialFeature {

  // 主键，使用 UUID 生成
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @Column({ type: 'text', nullable: true })
  TBID: string; // 田块ID（可为空）

  @Column({ type: 'double precision', nullable: true })
  Area: number; // 面积（可为空）

  @Column({ type: 'text', nullable: true })
  JCRWMC: string; // 监测任务名称（可为空）

  @Column({ type: 'text', nullable: true })
  JCRWDM: string; // 监测任务代码（可为空）

  @Column({ type: 'text', nullable: true })
  TBDM: string; // 土地标识码（可为空）

  @Column({ type: 'text', nullable: true })
  YSWTLXMC: string; // 用地类型名称（可为空）

  @Column({ type: 'text', nullable: true })
  YSWTLXDM: string; // 用地类型代码（可为空）

  @Column({ type: 'text', nullable: true })
  TBBHLX: string; // 土地变化类型（可为空）

  @Column({ type: 'timestamp', nullable: true })
  SFSJHX: Date; // 是否数据交换时间（可为空）

  @Column({ type: 'timestamp', nullable: true })
  JCRQ: Date; // 监测日期（可为空）

  @Column({ type: 'timestamp', nullable: true })
  JZRQ: Date; // 监测结束日期（可为空）

  @Column({ type: 'double precision', nullable: true })
  JD: number; // 经度（可为空）

  @Column({ type: 'double precision', nullable: true })
  WD: number; // 纬度（可为空）

  @Column({ type: 'double precision', nullable: true })
  MJ: number; // 面积（可为空）

  @Column({ type: 'text', nullable: true })
  SHENG: string; // 省（可为空）

  @Column({ type: 'text', nullable: true })
  SHI: string; // 市（可为空）

  @Column({ type: 'text', nullable: true })
  XIAN: string; // 区县（可为空）

  @Column({ type: 'text', nullable: true })
  XZQDM: string; // 行政区代码（可为空）

  @Column({ type: 'timestamp', nullable: true })
  WTFXRQ: Date; // 卫星影像获取日期（可为空）

  @Column({ type: 'text', nullable: true })
  ZYRY: string; // 专业人员（可为空）

  @Column({ type: 'text', nullable: true })
  ZJRY: string; // 专家人员（可为空）

  @Column({ type: 'text', nullable: true })
  JCSXJTSY: string; // 监测数据相关项目（可为空）

  @Column({ type: 'text', nullable: true })
  JZSXJTSY: string; // 监测数据相关项目（可为空）

  @Column({ type: 'text', nullable: true })
  WTLY: string; // 问题来源（可为空）

  @Column({ type: 'text', nullable: true })
  JSPDYJ: string; // 评估建议（可为空）

  @Column({ type: 'text', nullable: true })
  JSHSJL: string; // 监测数据可参考的实际数据（可为空）

  @Column({ type: 'boolean', default: false })
  SFHC: boolean; // 是否回收（默认值为false）

  @Column({ type: 'double precision', nullable: true })
  BZ: number; // 标注字段（可为空）

  @Column({ type: 'text', nullable: true })
  JZSXWXSJ: string; // 监测数据对应卫星影像（可为空）

  @Column({ type: 'text', nullable: true })
  JCSXWXSJ: string; // 监测数据对应卫星影像（可为空）

  @Column({ type: 'text', nullable: true })
  qian: string; // 监测数据对应卫星影像（可为空）

  @Column({ type: 'text', nullable: true })
  hou: string; // 监测数据对应卫星影像（可为空）

  @Column({ type: 'geometry', nullable: true })
  geom: object; // 几何数据，存储地理信息（GeoJSON）

  @Column({ type: 'uuid', nullable: true })
  relatedTaskId: string; // 关联的任务成果ID（没有外键约束，存储任务成果ID）
}
